/*
1 页面被打开的时候 触发onshow
  type = 1 不同于onload 无法在形参上接收 options参数
  先判断缓存中有没有token
    1.没有 直接跳转到授权页面
    2.有 继续往下执行
  1.获取url上的参数type
  2.根据type来决定页面标题的数组元素 那个被激活选中
  2.根据type 去发送请求获取订单数据
  3.渲染页面
  4.点击不同的标题 重新发送请请求来获取相应的数据渲染

*/
import { request} from '../../request/index'
Page({
  data: {
    //父组件定义数据
    tabs:[
      {
        id:0,
        value:"全部",
        isActive:true
      },
      {
        id:0,
        value:"待付款",
        isActive:false
      },
      {
       id:1,
       value:"待发货",
       isActive:false
     },
     {
       id:2,
       value:"退款/退货",
       isActive:false
     }
    ],
    orders: [] //订单列表数据
  },
  onShow(options){
     //先判断缓存中有没有token
     const token = wx.getStorageSync("token");
    //  if(!token){  //没有token
    //     wx.navigateTo({
    //       url: '/pages/auth/index',  //授权页面
    //     });
    //     return;
    //  }
     // 1.获取当前的小程序的页面栈-数组  它的长度最大是10页面
     let pages = getCurrentPages();
     // 2.数组中  索引最大的页面就是当前页面
     let currentPage = pages[pages.length-1];
     // 3.获取url上的type参数 
     const { type } =  currentPage.options; 
     // 4.激活选中页面标题
     this.changeTitleByIndex(type-1)
     // 5.调用获取订单查询列表
     this.getOrders(type);
  },

  //获取订单查询列表数据方法
  async getOrders(type){
   const res = await request({
         url:"/my/orders/all",
         data:{type}
       })
       this.setData({   //数据赋值给data
        //换算时间  把时间戳换成日期，单位为秒
        //  orders:res.orders.map(v=>({...v,create_time_cn:(new Date(v.create_time * 1000).toLocaleString())}))
       })
  },

  //根据标题索引来激活选中 标题数组
  changeTitleByIndex(index){
    // 2.修改源数组
    const {tabs} = this.data
    tabs.forEach((v,i)=> i=== index ? v.isActive = true : v.isActive = false);
    // 3.赋值回到data中
    this.setData({
      tabs
    })
  },
  handleTabsItemChange(e){
    // 1. 获取被点击的标题索引
    const {index} = e.detail;
    // 2.调用改变标题选中的方法
    this.changeTitleByIndex(index);
    // 3.重新发送请求 type=1  index=0
    this.getOrders(index+1);
  },

})